Run the program and see!
Writing a recursive Java program can be viewed as translating a math-like definition into Java code. The symbols of the definition are rearranged and some extra syntax is added to create Java code.
Definition | Translation into Java |
---|---|
Triangle( 1 ) = 1 Triangle( N ) = N + Triangle( N-1 ) |
int Triangle( int N ) { if ( N == 1 ) return 1; else return N + Triangle( N-1 ); } |
In this static view, if the math-like definition is correct, and you correctly translate it into Java, then the program is correct. You don't have to think about how Java does the calculation. Just check that you have correctly translated the definition.
Is the following a correct translation of the math-like definition?
int Triangle( int N ) { if ( N == 1 ) return 1; else return N + Triangle( N ); }